home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / tsql / doc / tsql.mail / 000053_csj@iesd.auc.dk _Mon Mar 29 22:49:03 1993.msg < prev    next >
Internet Message Format  |  1996-01-31  |  70KB

  1. Received: from iesd.auc.dk by optima.cs.arizona.edu (5.65c/15) via SMTP
  2.     id AA23652; Mon, 29 Mar 1993 13:49:08 MST
  3. Received: from yellow.iesd.auc.dk by iesd.auc.dk with SMTP id AA24189
  4.   (5.65c8/IDA-1.5/MD for <tsql@cs.arizona.edu>); Mon, 29 Mar 1993 22:49:03 +0200
  5. Date: Mon, 29 Mar 1993 22:49:03 +0200
  6. From: "Christian S. Jensen" <csj@iesd.auc.dk>
  7. Message-Id: <199303292049.AA24189@iesd.auc.dk>
  8. To: tsql@cs.arizona.edu
  9. Subject: TDB Glossary status report
  10.  
  11.            SUMMARY OF PROPOSED TEMPORAL DATABASE TERMS
  12.  
  13. A summary of the temporal database terms proposed since September 1992
  14. is now available via anonymous ftp from cs.arizona.edu.  The summary
  15. document is titled statusMar93 and may be found in the tsql directory,
  16. in ".dvi," ".ps," and ".tex" formats.  In addition, the ".tex" version
  17. is appended below.
  18.  
  19. The summary is provided as a service to current and prospective
  20. contributors of glossary entries.  Comments, improvements and
  21. criticisms, and proposals for new terms are strongly encouraged. They
  22. should be sent to the mailing list, tsql@cs.arizona.edu.
  23.  
  24. The goal of this initiative is to create a consensus glossary of
  25. temporal database terms.  For additional details, please see the
  26. introductory section of the summary and the other documents in the
  27. tsql directory.
  28.  
  29. Christian S. Jensen (editor)
  30. Aalborg University
  31. csj@iesd.auc.dk
  32.  
  33. \documentstyle[11pt]{article}
  34. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  35. % March version of glosary entries proposed until 3/30/92.
  36. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  37.  
  38. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  39. % VARIOUS MACROS
  40. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  41.  
  42. \long\def\comment#1{}
  43. \newcommand{\entry}[1]{\vspace*{-3pt} \subsubsection*{#1} \vspace*{-5pt}}
  44.  
  45. \setlength{\textheight}{8.85in}%8.75in}
  46. \setlength{\columnsep}{2.0pc}
  47. \setlength{\textwidth}{6.8in}
  48. \setlength{\footheight}{0.0in}
  49. \setlength{\topmargin}{0.0in}%{0.25in}
  50. \setlength{\headheight}{0.0in}
  51. \setlength{\headsep}{0.0in}
  52. \setlength{\oddsidemargin}{-.19in}
  53. \setlength{\parindent}{1pc}
  54.  
  55. \renewcommand{\baselinestretch}{1}
  56.  
  57. \newcommand{\dicstart}{\begin{list}{}{%
  58. \setlength{\labelwidth}{12pt}%
  59. \setlength{\rightmargin}{0pt}\setlength{\itemsep}{4pt}%
  60. \setlength{\leftmargin}{1cm}\setlength{\parsep}{0pt}%
  61. \setlength{\labelsep}{8pt}}}
  62.  
  63. \newcommand{\autsp}{$\;\;\;$}
  64.  
  65. \newcommand{\dicend}{\end{list}}
  66.  
  67. \newcommand{\name}[1]{\item[{\bf {#1}}]}
  68.  
  69. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  70. % PAPER START
  71. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  72.  
  73. \begin{document}
  74.  
  75. \begin{center}
  76. {\Large\bf Proposed Glossary Entries---March
  77. 1993}\footnote{Correspondence may be directed to the TSQL electronic
  78. mail distribution, {\tt tsql@cs.arizona.edu}, or to the editor at
  79. Aalborg University, Datalogi, Fr.~Bajers Vej 7E, DK--9220 Aalborg
  80. {\O}, Denmark, {\tt csj@iesd.auc.dk}. Affiliations and e-mail
  81. addresses of the authors follow. J.~Clifford, Information Systems
  82. Dept., New York University, {\tt jcliffor@is-4.stern.nyu.edu};
  83. C.~Dyreson, Computer Science Dept., University of Arizona {\tt
  84. curtis@cs.arizona.edu}; S.~K.~Gadia, Computer Science Dept., Iowa
  85. State University, {\tt gadia@cs.iastate.edu}; N.~Kline, Computer
  86. Science Dept., University of Arizona, {\tt kline@cs.arizona.edu};
  87. D.~Nonen, {\tt daniel@cs.concordia.ca}; J.~F.~Roddick, School of
  88. Computer and Information Science, University of South Australia {\tt
  89. roddick@unisa.edu.au}; A.~Segev, School of Business Adm.~and Computer
  90. Science Research Dept., University of California, {\tt
  91. segev@csr.lbl.gov}; R.~T.~Snodgrass, Computer Science Dept.,
  92. University of Arizona, {\tt rts@cs.arizona.edu}; A.~Tansel, Bernard
  93. M.~Baruch College, City University of New York {\tt
  94. UZTBB@CUNYVM.CUNY.EDU}.}
  95. \\[25pt]
  96. Christian~S.~Jensen (editor) \autsp James Clifford \autsp Curtis
  97. Dyreson \autsp Shashi K.~Gadia \\ 
  98. Sushil Jajodia \autsp Nick Kline \autsp Daniel Nonen \autsp John
  99. F.~Roddick \autsp Arie Segev \\
  100. Richard T.~Snodgrass \autsp Mike D.~Soo \autsp Abdullah Tansel
  101. \\[25pt]
  102. \end{center}
  103.  
  104. \small
  105. \subsection*{\centering Abstract}
  106.  
  107. This document describes the current status, as of March 30, 1993, of
  108. an initiative aimed at creating a consensus glossary of temporal
  109. database concepts and names. An earlier status document appeared in
  110. December 1992 and included terms proposed after an initial glossary
  111. appeared in SIGMOD Record. This document contains a set of new terms,
  112. proposed since December 1992, and the terms from the December 1992
  113. document. To provide a context, the terms from the initial glossary
  114. are included in an appendix in dictionary format, and criteria for
  115. evaluation of glossary entries are also listed in the appendix.
  116.  
  117. The document is intended to help future contributors of glossary
  118. entries. Proposed glossary entries should be sent to {\tt
  119. tsql@cs.arizona.edu}. Other information related to the initiative may
  120. be found at {\tt cs.arizona.edu} in the {\tt tsql} directory,
  121. accessible via anonymous ftp.
  122.  
  123. \small\normalsize
  124.  
  125. \setlength{\unitlength}{1mm}
  126. \begin{picture}(1,1)
  127.   \put(7,-145){\tt This paper was distributed to the TSQL e-mailing
  128.   list in March 1993.}
  129. \end{picture}
  130.  
  131. \vspace*{-5mm}
  132.  
  133. \section{Introduction}
  134. \label{sec:int}
  135.  
  136. This document is a structured presentation of the current status of an
  137. initiative aimed at creating a consensus glossary of temporal database
  138. terms. It contains the list of complete proposals for temporal
  139. database concepts and names which have been submitted to the mailing
  140. list {\tt tsql@cs.arizona.edu} since an initial glossary appeared in
  141. September 1992. The purpose of the document is to give potential
  142. contributors an overview of the terms proposed so far.
  143.  
  144. In order to obtain a consensus glossary, the proposed concepts and
  145. names are intended to be discussed during the first workshop on
  146. temporal databases (``International Workshop on an Infrastructure for
  147. Temporal Databases''), scheduled to be held in Arlington, TX, June
  148. 14-16, 1993. The objective of this workshop is to define and establish
  149. a common infrastructure of temporal databases and to develop a
  150. consensus base document that will provide a foundation for
  151. implementation and standardization as well as for further research.
  152.  
  153. An initial glossary on temporal database concepts and names was
  154. developed during the preparation of a forthcoming book on temporal
  155. databases ({\em Temporal Databases: Theory, Design, and
  156. Implementation,} edited by A.~Tansel, J.~Clifford, S.~Gadia,
  157. S.~Jajodia, A.d~Segev, and R.~Snodgrass, Benjamin/Cummings Publishers,
  158. Database Systems and Applications Series). That glossary also appears
  159. in the September 1992 issue of the SIGMOD Record. The terms and
  160. concepts from that glossary are included here in an appendix, in a
  161. dictionary format. In addition, the appendix includes relevance and
  162. evaluation criteria for glossary entries. The main body of this
  163. docoment has two parts. First, glossary entries proposed between
  164. December 1992 and the present time are presented. Second, glossary
  165. entries proposed between September 1992 and December 1992 are
  166. presented. Discussions in both parts refer to the evaluation criteria
  167. in the appendix.
  168.  
  169. \section{New, Proposed Glossary Entries}
  170. \label{sec:new}
  171.  
  172. The glossary entries in this section have been proposed since December
  173. 1992 and have not appeared in previous status documents.
  174.  
  175. \subsection{Valid-time Interval}
  176.  
  177. \entry{Definition}
  178.  
  179. A {\em valid-time interval} is an interval along the valid time-line.
  180. It identifies when some fact was true in reality.
  181.  
  182. \entry{Alternative Names}
  183.  
  184. None.
  185.  
  186. \entry{Discussion}
  187.  
  188. A valid-time interval can be represented with a contiguous, non-empty
  189. set of valid-time chronons.
  190.  
  191. \subsection{Transaction-time Interval}
  192.  
  193. \entry{Definition}
  194.  
  195. A {\em transaction-time interval} is an interval along the transaction
  196. time-line. It identifies when a fact was logically in the database,
  197. from the time it was inserted until the time it was logically deleted.
  198.  
  199. \entry{Alternative Names}
  200.  
  201. None.
  202.  
  203. \entry{Discussion}
  204.  
  205. A transaction-time interval can be represented with a non-empty set of
  206. contiguous transaction-time chronons.
  207.  
  208. \subsection{Bitemporal Interval}
  209.  
  210. \entry{Definition}
  211.  
  212. A {\em bitemporal interval} is a region in two-space of valid time and
  213. transaction time, with sides parallel to the axes. It identifies when
  214. a fact, recording that something was true in reality during the
  215. specified interval of valid time, was logically in the database during
  216. the specified interval of transaction time.
  217.  
  218. \entry{Alternative Names}
  219.  
  220. None.
  221.  
  222. \entry{Discussion}
  223. A bitemporal interval can be represented with a non-empty set of
  224. bitemporal chronons.
  225.  
  226. \subsection{Spatiotemporal as Modifier}
  227.  
  228. \entry{Definition}
  229.  
  230. The modifier {\em spatiotemporal} is used to indicate that the
  231. modified concept concerns simultaneous support of some aspect of time
  232. and some aspect of space, in one or more dimensions.
  233.  
  234. \entry{Alternative Names}
  235.  
  236. Spatio-temporal, temporal-spatial, space-time-oriented.
  237.  
  238. \entry{Discussion}
  239.  
  240. This term is already in use, interchangeably with ``spatio-temporal,''
  241. in the geographic information systems community (+E3) (hence, the
  242. preference over ``temporal-spatial''), and is consistent with the
  243. ``temporal'' modifier (+E7). Avoiding the hyphen makes it easier to
  244. type (+E2), another reason to prefer it over ``temporal-spatial''. It
  245. may be applied generically as a modifier for ``database,''
  246. ``algebra,'' ``query language,'' ``data model,'' and ``DBMS.'
  247.  
  248. \subsection{Spatial Quantum}
  249.  
  250. \entry{Definition}
  251.  
  252. A {\em spatial quantum} (or simply {\em quantum}, when the sense is
  253. clear) is the shortest distance (or area or volume) of space supported
  254. by a spatial DBMS---it is a nondecomposable region of space. It can be
  255. associated with one or more dimensions. A particular unidimensional
  256. quantum is an interval of fixed length along a single spatial
  257. dimension. A particular three-dimensional quantum is a fixed-sized,
  258. located cubic volume of space.
  259.  
  260. \entry{Alternative Name} 
  261.  
  262. Spatial unit.
  263.  
  264. \entry{Discussion}
  265.  
  266. ``Spatial quantum'' is preferred over ``spatial unit'' because spatial
  267. distances and volumes are usually given as measurements of some unit
  268. (such as meters), but the ``unit of measurement'' is not the same as
  269. the ``spatial quantum.'' The former term (``spatial quantum'') is
  270. more precise (+E9), in part, because it avoids this possible
  271. confusion.
  272.  
  273. \subsection{Spatiotemporal Quantum}
  274.  
  275. \entry{Definition}
  276.  
  277. A {\em spatiotemporal quantum} (or simply {\em quantum}, when the
  278. sense is clear) is a non-decomposable region in two, three, or
  279. four-space, where one or more of the dimensions are spatial and the
  280. rest, at least one, are temporal.
  281.  
  282. \entry{Alternative Name}
  283.  
  284. Spatiotemporal unit, spatiotemporal chronon.
  285.  
  286. \entry{Discussion}
  287.  
  288. This term is a generalization of chronon and spatial quantum.
  289. ``Unit'' is perhaps less precise ($-$E9). ``Chronon'' specifically
  290. relates to time, and thus is inconsistent with the adjective
  291. ``spatiotemporal.''
  292.  
  293. \subsection{Spatiotemporal Interval}
  294.  
  295. A {\em spatiotemporal interval} is a region in $n$-space, where at
  296. least one of the axes is a spatial dimension and the remaining axes
  297. are temporal dimensions, with the region having sides that are
  298. parallel to all axes. It identifies when and where a fact was true.
  299.  
  300. \entry{Alternative Names}
  301.  
  302. None.
  303.  
  304. \entry{Discussion}
  305.  
  306. A spatiotemporal interval can be represented by a non-empty set of
  307. spatiotemporal quanta.
  308.  
  309. \subsection{Spatiotemporal Element}
  310.  
  311. \entry{Definition}
  312.  
  313. A {\em spatiotemporal element} is a finite set of spatiotemporal
  314. intervals. Spatiotemporal elements are closed under the set theoretic
  315. operations of union, intersection and complementation.
  316.  
  317. \entry{Discussion}
  318.  
  319. This is the natural generalization of ``temporal element.''
  320. It can be represented with a set of spatiotemporal quanta.
  321.  
  322. \subsection{Temporal Selection}
  323.  
  324. \entry{Definition}
  325.  
  326. Facts are extracted from a temporal database by means of {\em temporal
  327. selection} when the selection predicate involves the times associated
  328. with the facts.
  329.  
  330. The generic concept of temporal selection may be specialized to
  331. include {\em valid-time selection,} {\em trans\-action-time selection,}
  332. and {\em bitemporal selection}. For example, in valid-time selection,
  333. facts are selected based on the values of their associated valid
  334. times.
  335.  
  336. \entry{Alternative Names}
  337.  
  338. None.
  339.  
  340. \entry{Discussion}
  341.  
  342. Query languages supporting, e.g., valid-time data, generally provide
  343. special facilities for valid-time selection which are built into the
  344. languages.
  345.  
  346. The name has already been used extensively in the literature by a wide
  347. range of authors (+E3), it is consistent with the unmodified notion of
  348. selection in (non-temporal) databases (+E1, +E7), and it appears
  349. intuitive and precise (+E8, +E9).
  350.  
  351. \subsection{Temporal Projection}
  352.  
  353. \entry{Definition}
  354.  
  355. In a query or update statement, {\em temporal projection} pairs the
  356. computed facts with their associated times, usually derived from the
  357. associated times of the underlying facts.
  358.  
  359. The generic notion of temporal projection may be applied to various
  360. specific time dimensions. For example, {\em valid-time projection}
  361. associates with derived facts the times at which they are valid,
  362. usually based on the valid times of the underlying facts.
  363.  
  364. \entry{Alternative Names}
  365.  
  366. Temporal assignment.
  367.  
  368. \entry{Discussion}
  369.  
  370. While almost all temporal query languages support temporal projection,
  371. the flexibility of that support varies greatly.
  372.  
  373. In some languages, temporal projection is implicit and is based the
  374. intersection of the times of the underlying facts. Other languages
  375. have special constructs to specify temporal projection.
  376.  
  377. The name has already been used extensively in the literature (+E3).
  378. It derives from the {\tt retrieve} clause in Quel as well as the {\tt
  379. SELECT} clause in SQL, which both serve the purpose of the relational
  380. algebra operator projection, in addition to allowing the specification
  381. of derived attribute values.
  382.  
  383. A related concept, denoted a temporal assignment, is roughly speaking
  384. a function that maps a set of time values to a set of values of an
  385. attribute. One purpose of a temporal assignment would be to indicate
  386. when different values of the attribute are valid.
  387.  
  388. \comment{The term is used in, e.g., ACM Computing Surveys, ACM TODS,
  389. ACM SIGMOD, and ICDE, and it is used by unrelated authors}
  390.  
  391. \subsection{Temporal Dependency}
  392.  
  393. \entry{Definition}         
  394.  
  395. Let $X$ and $Y$ be sets of explicit attributes of a temporal relation
  396. schema, $R$. A {\em temporal functional dependency\/}, denoted $X
  397. \stackrel{\mbox{\rm\tiny T}}{\rightarrow} Y$, exists on $R$ if, for
  398. all instances $r$ of $R$, all snapshots of $r$ satisfy the functional
  399. dependency $X \rightarrow Y$.
  400.  
  401. Note that more specific notions of temporal functional dependency
  402. exist for valid-time, transaction-time, bitemporal, and spatiotemporal
  403. relations. Also observe that using the template for temporal
  404. functional dependencies, temporal multivalued dependencies may be
  405. defined in a straight-forward manner.
  406.  
  407. Finally, the notions of temporal keys (super, candidate, primary)
  408. follow from the notion of temporal functional dependency.
  409.  
  410. \entry{Alternative Names}
  411.  
  412. Independence, dependence.
  413.  
  414. \entry{Discussion}
  415.  
  416. Temporal functional dependencies are generalizations of conventional
  417. functional dependencies. In the definition of a temporal functional
  418. dependency, a temporal relation is perceived as a collection of
  419. snapshot relations. Each such snapshot of any extension must satisfy
  420. the corresponding functional dependency.
  421.  
  422. Other (conflicting) notions of of temporal dependencies and keys have
  423. been defined, but none are as closely paralleled by snapshot
  424. dependencies and keys as the above. The naming of the concepts is
  425. orthogonal with respect to existing snapshot concepts, and the new
  426. names are mutually consistent (+E1, +E7).
  427.  
  428. Related notions of independent and dependent attributes exist. Using
  429. temporal as a prefix distinguishes the concept from conventional
  430. dependencies and points to the specific nature of the dependency.
  431. Thus ambiguity is avoided (+E5), and precision is enhanced (+E9)---at
  432. the expense of brevity ($-$E2).
  433.  
  434. ``Temporal dependency'' has also been used in a non-generic sense, to
  435. denote a different concept. The term ``temporal'' is often used in a
  436. generic sense, so ambiguity results when it is also used in a specific
  437. sense. Thus ``temporal'' is used here only in a generic sense.
  438.  
  439. \subsection{Temporal Normal Form}
  440.  
  441. \entry{Definition}
  442.  
  443. A pair $(R, F)$ of a temporal relation schema $R$ and a set of
  444. associated temporal functional dependencies $F$ is in {\em temporal
  445. Boyce-Codd normal form} (TBCNF) if
  446.  
  447. \[\forall \; X \stackrel{\mbox{\rm\tiny T}}{\rightarrow} Y \; \in
  448. F^+ \; (Y \subseteq X \vee X \stackrel{\mbox{\rm\tiny T}}{\rightarrow}
  449. R)\]
  450. where $F^+$ denotes the closure of $F$ and $X$ and $Y$ are sets of
  451. attributes of $R$.
  452.  
  453. Similarly, $(R, F)$ is in {\em temporal third normal form} (T3NF) if
  454. for all non-trivial temporal functional dependencies $ X
  455. \stackrel{\mbox{\rm\tiny T}}{\rightarrow} Y$ in $F^+$, $X$ is a
  456. temporal superkey for $R$ or each attribute of $Y$ is part of a
  457. minimal temporal key of $R$.
  458.  
  459. The definition of {\em temporal fourth normal form} (T4NF) is similar
  460. to that of TBCNF, but also uses temporal multivalued dependencies.
  461.  
  462. \entry{Alternative Names}
  463.  
  464. Time normal form, P normal form, Q normal form, first temporal normal
  465. form.
  466.  
  467. \entry{Discussion}
  468.  
  469. The three temporal normal forms mentioned in the definition are not a
  470. complete account of temporal normal forms. Indeed, the alternative
  471. names refer to different and complementing notions of temporal normal
  472. forms.
  473.  
  474. The naming of the concepts is orthogonal with respect to existing
  475. snapshot concepts, and the new names are mutually consistent (+E1,
  476. +E7).
  477.  
  478. \subsection{Calendar}
  479.  
  480. \entry{Definition}
  481.  
  482. A {\it calendar} provides a human interpretation of time. As such,
  483. calendars ascribe meaning to temporal values where the particular
  484. meaning or interpretation is relevant to the user. In particular,
  485. calendars determine the mapping between human-meaningful time values
  486. and an underlying time-line.
  487.  
  488. \entry{Alternative Names}
  489.  
  490. None.
  491.  
  492. \entry{Discussion}
  493.  
  494. Calendars are generally cyclic, allowing human-meaningful time values
  495. to be expressed succinctly. For example, dates in the common
  496. Gregorian calendar may be expressed in the form $<${\em month\/} {\em
  497. day}, {\em year\/}$>$ where each of the fields month, day, and year
  498. cycle as time passes.
  499.  
  500. The concept of calendar defined here subsumes commonly used calendars
  501. such as the Gregorian calendar, the Hebrew calendar, and the Lunar
  502. calendar, though the given definition is much more general. This
  503. usage is consistent with the conventional English meaning of the word
  504. (+E3). It is also intuitive for the same reason (+E8).
  505.  
  506. \subsection{Gregorian Calendar}
  507.  
  508. \entry{Definition}
  509.  
  510. The {\em Gregorian calendar} is composed of 12 months, named in order,
  511. January, February, March, April, May, June, July, August, September,
  512. October, November, and December. The 12 months form a year. A year
  513. is either 365 or 366 days in length, where the extra day is used on
  514. ``leap years'', defined as years evenly divisible by 4, except for
  515. centesimal years divisible by 400. Each month has a fixed number of
  516. days, except for February, the length of which varies by a day
  517. depending on whether or not the particular year is a leap year.
  518.  
  519. \entry{Alternative Names}
  520.  
  521. None.
  522.  
  523. \entry{Discussion}
  524.  
  525. The Gregorian calendar is widely used and accepted (+E3,+E7). This
  526. term is defined and used elsewhere ($-$R1), but is in such common use
  527. in temporal databases that it should be defined.
  528.  
  529. \subsection{Calendric System}
  530.  
  531. \entry{Definition}
  532.  
  533. A calendric system is a collection of calendars. Each calendar in a
  534. calendric system is defined over contiguous and non-overlapping
  535. intervals of an underlying time-line. Calendric systems define the
  536. human interpretation of time for a particular locale as different
  537. calendars may be employed during different intervals.
  538.  
  539. \entry{Alternative Names}   
  540.  
  541. None.
  542.  
  543. \entry{Discussion}
  544.  
  545. A calendric system is the abstraction of time available at the
  546. conceptual (query language) level. The term ``calendric system'' has
  547. been used to describe the calculation of events within a single
  548. calendar---it therefore has a conflicting meaning ($-$E7). Our
  549. definition generalizes this usage to multiple calendars in a very
  550. natural way, however. Furthermore, our meaning is intuitive in that
  551. the calendric system interprets time values at the conceptual level
  552. (+E8).
  553.  
  554. \subsection{Temporal Natural Join}
  555.  
  556. \entry{Definition}
  557.  
  558. A temporal natural join is a binary operator that generalizes the
  559. snapshot natural join to incorporate one or more time dimensions.
  560. Tuples in a temporal natural join are merged if their explicit join
  561. attribute values match, and they are temporally coincident in the
  562. given time dimensions. As in the snapshot natural join, the relation
  563. schema resulting from a temporal natural join is the union of the
  564. explicit attribute values present in both operand schemas, along with
  565. one or more timestamps. The value of a result timestamp is the
  566. temporal intersection of the input timestamps, that is, the chronons
  567. contained in both.
  568.  
  569. \entry{Alternative Names}
  570.  
  571. Natural time-join, time-equijoin.
  572.  
  573. \entry{Discussion}
  574.  
  575. The snapshot natural join can be generalized to incorporate valid-time
  576. (the {\em valid-time natural join}), transaction-time (the {\em
  577.   transaction-time natural join}), or both (the {\em bitemporal
  578.   natural join}). In each case, the schema resulting from the join is
  579. identical to that of the snapshot natural join appended with the
  580. timestamp(s) of the input relations.
  581.  
  582. ``Temporal natural join'' directly generalizes the snapshot term
  583. ``natural join'' in that ``temporal'' is used as a modifier consistent
  584. with its previously proposed glossary definition (+E7). ``Natural
  585. time-join'' is less precise since it is unclear what is natural, i.e.,
  586. is the join over ``natural time'' or is the time-join ``natural''
  587. ($-$E7, $-$E9). ``Time-equijoin'' is also less precise since, in the
  588. snapshot model, the natural join includes a projection while the
  589. equijoin does not ($-$E7, $-$E9).
  590.  
  591. \subsection{Temporally-indeterminate Event}
  592.  
  593. \entry{Definition}
  594.  
  595. A {\em temporally-indeterminate event} (or just {\em indeterminate
  596. event}, when the context is clear) is an event that is known to have
  597. occurred but precisely when is unknown. The times when the event
  598. might have occurred must be contiguous; non-contiguous times can be
  599. modeled by an exclusive-or disjunction of indeterminate events.
  600.  
  601. \entry{Alternative Names}
  602.  
  603. Temporally-incomplete event, temporally-fuzzy event,
  604. temporally-imprecise event.
  605.  
  606. \entry{Discussion}
  607.  
  608. ``Michelle was born yesterday'' is a typical indeterminate event. An
  609. indeterminate event is composed of an event (e.g., ``Michelle was
  610. born'') and some indeterminate temporal information (e.g.,
  611. ``yesterday'').
  612.  
  613. Note that an event with noncontiguous temporally-indeterminate
  614. information, such as ``Jack was killed on a Friday night in 1990,'' is
  615. not an indeterminate event since the times when the event might have
  616. occurred are non-contiguous. The incomplete temporal information
  617. could be more substantial. For instance, an indeterminate event could
  618. have an associated probability mass function which gives the
  619. probability that the event occurred during each chronon on a
  620. time-line.
  621.  
  622. Currently, there is no name used in the literature to describe the
  623. incomplete temporal information associated with an event. The
  624. modifier ``incomplete'' is too vague (-E9), while ``fuzzy'' has
  625. unwanted connotations (i.e., with fuzzy sets) (-E9).
  626. ``Indeterminate'' is more general than ``imprecise;'' imprecise
  627. commonly refers to measurements, but imprecise clock measurements are
  628. only one source of indeterminate events.
  629.  
  630. \subsection{Upper Support Chronon}
  631.  
  632. \entry{Definition}
  633.  
  634. In the discrete model of time, the {\em upper support chronon} is the
  635. latest chronon during which an indeterminate event might have
  636. occurred.
  637.  
  638. \entry{Alternative Names}
  639.  
  640. Upper bound.
  641.  
  642. \entry{Discussion}
  643.  
  644. The upper support chronon is an upper bound on the possible times when
  645. an indeterminate event might have occurred. The noun ``support'' is
  646. preferred to ``bound'' because the use of the former term is
  647. consistent with probability theory (+E9). For an indeterminate event,
  648. a probability mass function gives the probability that the event
  649. occurred during each chronon. The probability that the event occurred
  650. sometime after the upper support chronon is zero.
  651.  
  652. \subsection{Lower Support Chronon}
  653.  
  654. \entry{Definition}
  655.  
  656. In the discrete model of time, the {\em lower support chronon} is the
  657. earliest chronon during which an indeterminate event might have
  658. occurred.
  659.  
  660. \entry{Alternative Names}
  661.  
  662. Lower bound.
  663.  
  664. \entry{Discussion}
  665.  
  666. The lower support chronon is a lower bound on the possible times when
  667. an indeterminate event might have occurred. The noun ``support'' is
  668. preferred to ``bound'' because the use of the former term is
  669. consistent with probability theory (+E9). For an indeterminate event,
  670. a probability mass function gives the probability that the event
  671. occurred during each chronon. The probability that the event occurred
  672. sometime before the lower support chronon is zero.
  673.  
  674. \subsection{Temporally Indeterminate Interval}
  675.  
  676. \entry{Definition}
  677.  
  678. A {\em temporally-indeterminate interval} (or just {\em indeterminate
  679.   interval} when the context is clear) is an interval bounded by at
  680. least one temporally-indeterminate event. Since an interval cannot end
  681. before it starts, the possible times associated with the bounding
  682. events can overlap on only a single chronon.
  683.  
  684. \entry{Alternative Names}
  685.  
  686. Temporally-incomplete interval, temporally-fuzzy interval,
  687. temporally-imprecise interval.
  688.  
  689. \entry{Discussion}
  690.  
  691. Currently, there is no name used in the literature to describe the
  692. incomplete temporal information associated with an interval. The
  693. modifier ``incomplete'' is too vague ($-$E9), while ``fuzzy'' has
  694. unwanted connotations (i.e., with fuzzy sets) ($-$E9).
  695. ``Indeterminate'' is more general than ``imprecise;'' imprecise
  696. commonly refers to measurements, but imprecise clock measurements are
  697. only one source of indeterminate intervals.
  698.  
  699. \subsection{Partitioning Attribute}
  700.  
  701. The {\em partitioning attribute} is the attribute used to partition a
  702. relation into sets and is used in aggregation. All members of a set
  703. have the same value for the partitioning attribute. The sets are
  704. distinguished by different partitioning attribute values.
  705.  
  706. \entry{Alternative Names}
  707.  
  708. Grouping attribute.
  709.  
  710. \entry{Discussion}
  711.  
  712. Grouping is the accepted term, but does not denote that the
  713. subdivision is into disjoint sets, while partitioning does imply this
  714. ($-$E3, +E9). The partitioning attribute may be composed of several
  715. attributes, as well as a single attribute. If this is the case, then
  716. partition the relation based on the combination of the attribute
  717. values, where each unique combination of attribute values
  718. distinguishes a set.
  719.  
  720. The partitioning attribute is used only in value partitioning.
  721.  
  722. \subsection{Value Partitioning}
  723.  
  724. {\em Value partitioning} is the partitioning of a relation based on
  725. the value of the partitioning attribute or attributes, and is used in
  726. aggregation. All tuples within a set have the same partitioning
  727. attribute value.
  728.  
  729. \entry{Alternative Names}
  730.  
  731. Value grouping.
  732.  
  733. \entry{Discussion}
  734.  
  735. Value grouping is awkward and does not adequately denote that the
  736. subdivision of the relation is into subsets where no two sets contain
  737. a common element.
  738.  
  739.  
  740. \subsection{Valid-time Grouping}
  741.  
  742. {\em Valid-time grouping} is the grouping of the valid time-line into
  743. {\em valid-time elements}, on each of which a cumulative aggregate may
  744. then be applied. The valid-time elements may overlap and do not
  745. necessarily cover the time-line. To compute the aggregate, first
  746. determine the valid-time elements of the grouping, then assemble the
  747. tuples valid over each valid-time element into a set, and finally
  748. compute the aggregate over each of these sets.
  749.  
  750.  
  751. \entry{Alternative Names}
  752.  
  753. Valid-time partitioning.
  754.  
  755. \entry{Discussion}
  756.  
  757. Grouping the time-line is a useful capability for aggregates in
  758. temporal databases (+R1,+R3).
  759.  
  760. Partitioning is inappropriate because the valid-time elements may
  761. overlap; they do not necessarily form a {\it partition} since they may
  762. not cover the time-line. One example of valid-time grouping is to
  763. divide the time-line into years, based on the Gregorian calendar. Then
  764. for each year, compute the count of the tuples which overlap that
  765. year.
  766.  
  767. There is no existing term for this concept. There is no grouping
  768. attribute in valid-time grouping, since the grouping does not depend
  769. on attribute values, but instead on valid times.
  770.  
  771. Valid-time grouping may occur before or after value partitioning.
  772.  
  773. \subsection{Dynamic Valid-time Grouping}
  774.  
  775. In {\em dynamic valid-time grouping} the valid-time elements used in
  776. the grouping are determined solely from the timestamps of the relation
  777. being grouped.
  778.  
  779. \entry{Alternative Names}
  780.  
  781. Moving window.
  782.  
  783. \entry{Discussion}
  784.  
  785. The term dynamic is appropriate (as opposed to static) because if the
  786. information in the database changes, the grouping intervals may
  787. change. The intervals are determined from intrinsic information.
  788.  
  789. One example of dynamic valid-time grouping would be to compute the
  790. average value of an attribute in the relation (say the salary), for
  791. the previous year before the stop-time of each tuple. A technique
  792. which could be used to compute this query would be for each tuple,
  793. find all tuples valid in the previous year before the stop-time of the
  794. tuple in question, and combine these tuples into a set. Finally,
  795. compute the average of the salary attribute values in each set.
  796.  
  797. It may seem inappropriate to use valid-time elements instead of
  798. intervals, however there is no reason to exclude valid-time elements
  799. as the time-line grouping may overlap in either case.
  800.  
  801. The existing term for this concept does not have an opposing term
  802. suitable to refer to dynamic valid-time grouping, and may not
  803. distinguish between the two types of valid-time grouping ($-$E3, +E9).
  804. Various temporal query languages have used both dynamic and static
  805. valid-time grouping, but have not always been clear about which type
  806. of grouping they support (+E1). Utilization of these terms will remove
  807. this ambiguity from future discussions.
  808.  
  809. \subsection{Static Valid-time Grouping}
  810.  
  811. \entry{Definition}
  812.  
  813. In {\em static valid-time grouping} the valid-time elements used are
  814. determined solely from fixed points on a calendar, such as the start
  815. of each year. The valid-time elements cover the valid time-line.
  816.  
  817. \entry{Alternative Names}
  818.  
  819. Moving window.
  820.  
  821. \entry{Discussion}
  822.  
  823. This term further distinguishes existing terms ($-$E3, +E9). It is an
  824. obvious parallel to dynamic valid-time grouping (+E1). Static is an
  825. appropriate term because the grouping intervals are determined from
  826. extrinsic information. The grouping intervals would not change if the
  827. information in the database changed.
  828.  
  829. Computing the maximum salary of employees during each month is an
  830. example which requires using static valid-time grouping. To compute
  831. this information, first divide the time-line into valid-time elements
  832. where each element represents a separate month on, say, the Gregorian
  833. calendar. Then, find the tuples valid over each valid-time element,
  834. and compute the maximum aggregate over the members of each set.
  835.  
  836. \subsection{Valid-time Cumulative Aggregation}
  837.  
  838. \entry{Definition}
  839.  
  840. In {\em cumulative aggregation}, for each valid-time element of the
  841. valid-time grouping (produced by either dynamic or static valid-time
  842. grouping), the aggregate is applied to all tuples associated with that
  843. valid-time element.
  844.  
  845. The value of the aggregate at any event is the value computed over the
  846. grouping element that contains that event.
  847.  
  848. \entry{Alternative Names}
  849.  
  850. Moving window.
  851.  
  852. \entry{Discussion}
  853.  
  854. {\em Cumulative} is used because the interesting values are defined
  855. over a cumulative range of time (+E8). This term is more precise than
  856. the existing term ($-$E3, +E9). Cumulative aggregation may be further
  857. restricted by valid-time grouping (c.f., static and dynamic valid-time
  858. grouping). Instantaneous aggregation may be considered to be a
  859. degenerate case of cumulative aggregation.
  860.  
  861. One example of cumulative aggregation would be find the total number
  862. of employees who had worked at some point for a company. To compute
  863. this value at the end of each calendar year, then, for each year,
  864. define a valid-time element which is valid from the beginning of time
  865. up to the end of that year. For each valid-time element, find all
  866. tuples which overlap that element, and finally, count the number of
  867. tuples in each set.
  868.  
  869. \subsection{Instantaneous Aggregation}
  870.  
  871. \entry{Definition}
  872.  
  873. In {\em instantaneous aggregation}, for each event on the valid
  874. time-line, the aggregate is applied to all tuples valid at that event.
  875.  
  876. \entry{Alternative Names}
  877.  
  878. None.
  879.  
  880. \entry{Discussion}
  881.  
  882. The term {\em instantaneous} is appropriate because the aggregate is
  883. applied over an event. It suggests an interest in the aggregate value
  884. over a very small time interval, an instant, much as acceleration is
  885. defined in physics over an infinitesimally small time (+R3).
  886.  
  887. Many temporal query languages perform instantaneous aggregation,
  888. others use cumulative aggregation, while still others use a
  889. combination of the two. This term will be useful to distinguish
  890. between the various alternatives, and is already used by some
  891. researchers (+R4,+E3).
  892.  
  893. \section{Previously Proposed Glossary Entries}
  894. \label{sec:pre}
  895.  
  896. The glossary entries in this section were proposed after the initial
  897. glossary appeared in SIGMOD Record and before December 1992. The
  898. entries appeared in the status document {\em Proposed Glossary
  899. Entries---December 1992,} distributed also in December 1992.
  900.  
  901. \subsection{Temporal Data Type}
  902. \label{sec:tem}
  903.  
  904. \entry{Definition} 
  905. The user-defined temporal data type is a time representation specially
  906. designed to meet the specific needs of the user.  For example, the
  907. designers of a database used for class scheduling in a school might be
  908. based on a ``Year:Term:Day:Period'' format.  Terms belonging to a
  909. user-defined temporal data type get the same query language support as
  910. do terms belonging to built-in temporal data types such as the DATE
  911. data type.
  912.  
  913. \entry{Alternative Names}
  914. User-defined temporal data type, auxiliary temporal data type.
  915.  
  916. \entry{Discussion}
  917. The phrase ``user-defined temporal data type'' is uncomfortably similar
  918. to the phrase ``user-defined time'', which is an orthogonal concept.
  919. Nevertheless, it is an appropriate description for the intended usage
  920. and we have used in our work.  If the notion of providing special
  921. purpose temporal terms becomes more popular, I suspect the shorter
  922. term ``Temporal Data Type'' will be sufficiently descriptive.
  923.  
  924. \subsection{Schema Evolution}
  925.  
  926. \entry{Definition}
  927. A database system supports {\em schema evolution} if it permits
  928. modification of the database schema without the loss of extant data.
  929. No historical support for previous schemas is required.
  930.  
  931. \entry{Alternative Names}   
  932. Schema versioning, data evolution.
  933.  
  934. \entry{Discussion}
  935.  
  936. While support for ``schema evolution'' indicates that an evolving
  937. schema may be supported, the term ``schema versioning'' indicates that
  938. previous versions of an evolving schema are also supported. Therefore,
  939. ``schema versioning'' is appropriate for a more restrictive concept.
  940.  
  941. The name ``data evolution'' is inappropriate because ``data'' refers
  942. to the schema contents, i.e., the extension rather than the intension.
  943. Data evolution is supported by conventional update operators.
  944.  
  945. While some confusion exists as to its exact definition, ``schema
  946. evolution'' is an accepted name and is widely used already.
  947.  
  948. \subsection{Schema Versioning}
  949.  
  950. \entry{Definition}
  951.  
  952. A database system accommodates {\em schema versioning} if it allows
  953. the querying of all data, both retrospectively and prospectively,
  954. through user-definable version interfaces. While support for schema
  955. versioning implies the support for schema evolution, the reverse is
  956. not true.
  957.  
  958. Support for schema versioning requires that a history of changes be
  959. maintained to enable the retention of past schema definitions.
  960.  
  961.  
  962. \entry{Alternative Names}   
  963. Schema evolution, data evolution.
  964.  
  965. \entry{Discussion}
  966. The name ``schema evolution'' does not indicate that previously
  967. current versions of the evolving schema are also supported. It is thus
  968. less precise that ``schema versioning.'' As schema evolution, schema
  969. versioning is an intensional concept; ``data evolution'' has
  970. extensional connotations and is inappropriate.
  971.  
  972. \subsection{Snapshot Equivalent}
  973.  
  974. \entry{Definition}         
  975. Informally, two tuples are {\em snapshot equivalent\/} if the snapshots of the
  976. tuples at all times are identical.
  977.  
  978. Let temporal relation schema $R$ have $n$ time dimensions, $D_i$, $i =
  979. 1, \ldots, n$, and let $\tau^i$, $i = 1, \ldots, n$ be corresponding
  980. timeslice operators, e.g., the valid timeslice and transaction
  981. timeslice operators. Then, formally, tuples $x$ and $y$
  982. are snapshot equivalent if 
  983.  
  984. \[ \forall t_1 \in D_1 \ldots \forall t_n \in D_n (
  985. \tau^n_{t_n}( \ldots (\tau^1_{t_1}(x)) \ldots ) =
  986. \tau^n_{t_n}( \ldots (\tau^1_{t_1}(y)) \ldots )) \;\; .\]
  987.  
  988. \noindent
  989. Similarly, two relations are {\em snapshot equivalent\/} if at every time their
  990. snapshots are equal.
  991. {\em Snapshot equivalence\/} is a binary relation that can be applied to
  992. tuples and to relations.
  993.  
  994. \entry{Alternative Names}   
  995. Weakly equal, temporally weakly equal, weak equivalence.
  996.  
  997. \entry{Discussion}
  998. Weak equivalence has been used by Ullman to relate two algebraic
  999. expressions (Ullman, Principles of Database Systems, Second Edition,
  1000. page 309). Hence, ``temporally weakly equal'' is preferable to
  1001. ``weakly equal'' (E7).
  1002.  
  1003. In comparing ``temporally weakly equal'' with ``snapshot equivalent'',
  1004. the former term is longer and more wordy, and is
  1005. somewhat awkward, in that it contains two adverbs ($-$E2). 
  1006. ``Temporally weak'' is not intuitive---in what way is it weak?
  1007. Snapshot equivalent explicitly identifies the source of the
  1008. equivalence (+E8).
  1009.  
  1010. \subsection{Snapshot-Equivalence Preserving Operator}
  1011.  
  1012. \entry{Definition}         
  1013.  
  1014. A unary operator $F$ is {\em snapshot-equivalence preserving\/} if
  1015. relation $r$ is snapshot equivalent to $r'$ implies $F(r)$ is snapshot
  1016. equivalent to $F(r')$. This definition may be extended to operators
  1017. that accept two or more argument relation instances.
  1018.  
  1019. \entry{Alternative Names}   
  1020. Weakly invariant operator, is invariant under weak binding of belongs to.
  1021.  
  1022. \entry{Discussion}
  1023. This definition does not rely on the term ``weak binding'' (+E7).
  1024.  
  1025. \subsection{Snapshot Equivalence Class}
  1026.  
  1027. \entry{Definition}         
  1028. A {\em snapshot equivalence class\/} is a set of relation instances that
  1029. are all snapshot equivalent to each other.
  1030.  
  1031. \entry{Alternative Names}   
  1032. Weak relation.
  1033.  
  1034. \entry{Discussion}
  1035. ``Weak relation'' is not intuitive, as the concept identifies a set of relation
  1036. instances, not a single instance ($-$E8).
  1037.  
  1038. \subsection{Value Equivalence}
  1039.  
  1040. \entry{Definition}         
  1041. Informally, two tuples on the same (temporal) relation schema are {\em
  1042. value equivalent} if they have identical non-timestamp attribute
  1043. values.
  1044.  
  1045. To formally define the concept, let temporal relation schema $R$ have
  1046. $n$ time dimensions, $D_i$, $i = 1, \ldots, n$, and let $\tau^i$, $i =
  1047. 1, \ldots, n$ be corresponding timeslice operators, e.g., the valid
  1048. timeslice and transaction timeslice operators. Then tuples $x$ and $y$
  1049. are value equivalent if
  1050.  
  1051. \begin{eqnarray*}
  1052. \exists t_1 \in D_1 \ldots \exists t_n \in D_n (\tau^n_{t_n}(
  1053. \ldots (\tau^1_{t_1}(x)) \ldots ) \neq \emptyset)
  1054. & \wedge &
  1055. \exists s_1 \in D_1, \ldots,  s_n \in D_n (\tau^n_{s_n}( \ldots
  1056. (\tau^1_{s_1}(y)) \ldots ) \neq \emptyset) \\
  1057. \Rightarrow \;\;\;
  1058. \bigcup_{\forall t_1 \in D_1,\ldots, t_n \in D_n}
  1059.     \hspace*{-.8cm}\tau^n_{t_n}(\ldots(\tau^1_{t_1}(x))\ldots)
  1060. \hspace{.6cm} & = &
  1061.   \bigcup_{\forall s_1 \in D_1,\ldots, s_n \in D_n}
  1062.     \hspace*{-.8cm}\tau^n_{s_n}(\ldots(\tau^1_{s_1}(y))\ldots) \;\; .
  1063. \end{eqnarray*}
  1064.  
  1065. \noindent
  1066. Thus the set of tuples in snapshots of $x$ and the set of tuples in
  1067. snapshots of $y$ are required to be identical. This is required only
  1068. when each tuple has some non-empty snapshot.
  1069.  
  1070. \entry{Alternative Names}   
  1071. None.
  1072.  
  1073. \entry{Discussion}
  1074. The concept of value equivalent tuples has been shaped to be
  1075. convenient when addressing concepts such as coalescing, normal forms,
  1076. etc. The concept is distinct from related notions of the normal form
  1077. SG1NF and {\em mergeable} tuples.
  1078.  
  1079. Phrases such as ``having the same visible attribute values'' and
  1080. ``having duplicate values'' have been used previously.
  1081.  
  1082. The orthogonality criterion (+E1) is satisfied. Further, the concept
  1083. is a straight-forward generalization of identity of tuples in the
  1084. snapshot-relational model. There are no competing names (+E3), the
  1085. name seems open-ended (+E4) and does not appear to have other
  1086. meanings (+E5). Further, the name is consistent with existing
  1087. terminology (+E7) and does not violate other criteria.
  1088.  
  1089. \subsection{Fixed Span}
  1090.  
  1091. \entry{Definition}
  1092. The duration of a span is either context-dependent or
  1093. context-independent. A {\em fixed span\/} has a context-independent
  1094. duration. For example, the span {\tt one hour} has a duration of 60
  1095. minutes and is therefore a fixed span.
  1096.  
  1097. \entry{Alternative Names}
  1098. Constant span.
  1099.  
  1100. \entry{Discussion}
  1101. Fixed span is short (+E2), precise (+E9), and has no conflicting
  1102. meanings (+E5).
  1103.  
  1104. ``Constant'' appears more precise (+E8) and intuitive (+E9), but it is
  1105. also used as a keyword in several programming languages ($-$E5).
  1106.  
  1107. \subsection{Variable Span}
  1108.  
  1109. \entry{Definition}
  1110. A span that is not fixed is {\em variable\/}---the value of the span
  1111. is dependent on the context in which it appears. For example, the
  1112. span {\tt one month} represents a duration of between twenty-eight and
  1113. thirty-one days depending on the context in which it is used.
  1114.  
  1115. \entry{Alternative Names}
  1116. Moving span.
  1117.  
  1118. \entry{Discussion}
  1119. Variable span is intuitive (+E9), and precise (+E9).  
  1120.  
  1121. ``Moving span'' is unintuitive ($-$E9) and has informal spatial
  1122. connotations ($-$E5).
  1123.  
  1124. \subsection{Physical Clock}
  1125.  
  1126. \entry{Definition}
  1127. A {\em physical clock\/} is a physical process coupled with a method
  1128. of measuring that process. Although the underlying physical process
  1129. is continuous, the physical clock measurements are discrete, hence a
  1130. physical clock is discrete.
  1131.  
  1132. \entry{Alternative Names}   
  1133. Clock.
  1134.  
  1135. \entry{Discussion}
  1136. A physical clock by itself does not measure time; it only measures the
  1137. process. For instance, the rotation of the earth measured in solar
  1138. days is a physical clock. Most physical clocks are based on cyclic
  1139. physical processes (such as the rotation of the earth). The modifier
  1140. ``physical'' is used to distinguish this kind of clock from other
  1141. kinds of clocks, e.g., the time-line clock ($+$E9). It is also
  1142. descriptive in so far as physical clocks are based on recurring
  1143. natural or man-made phenomena ($+$E8).
  1144.  
  1145. \subsection{Time-line Clock}
  1146.  
  1147. \entry{Definition}
  1148. In the discrete model of time, a {\em time-line clock\/} is a set of
  1149. physical clocks coupled with some specification of when each physical
  1150. clock is authoritative. Each chronon in a time-line clock is a
  1151. chronon (or a regular division of a chronon) in an identified,
  1152. underlying physical clock. The time-line clock switches from one
  1153. physical clock to the next at a synchronization point. A
  1154. synchronization point correlates two, distinct physical clock
  1155. measurements. The time-line clock must be anchored at some chronon to
  1156. a unique physical state of the universe.
  1157.  
  1158. \entry{Alternative Names}   
  1159. Base-line clock, time-segment clock.
  1160.  
  1161. \entry{Discussion}
  1162.  
  1163. A time-line clock glues together a sequence of physical clocks to
  1164. provide a consistent, clear semantics for a discrete time-line. A
  1165. time-line clock provides a clear, consistent semantics for a discrete
  1166. time-line by gluing together a sequence of physical clocks. Since the
  1167. range of most physical clocks is limited, a time-line clock is usually
  1168. composed of many physical clocks. For instance, a tree-ring clock can
  1169. only be used to date past events, and the atomic clock can only be
  1170. used to date events since the 1950s. The term ``time-line'' has a
  1171. well-understood informal meaning, as does ``clock,'' which we coopt
  1172. for this definition ($+$E5). This concept currently has no name
  1173. ($+$E7)($-$E3), but it is used for every timestamp (e.g., SQL2 uses
  1174. the mean solar day clock---the basis of the Gregorian calendar---as
  1175. its time-line clock). The modifier ``time-line'' distinguishes this
  1176. clock from other kinds of clocks ($+$E1). Time-line is more intuitive
  1177. than ``base-line'' ($+$E8), but less precise (mathematically) than
  1178. ``time-segment,'' since the time-line clock usually describes a
  1179. segment rather than a line ($-$E9). We prefer time-line clock to
  1180. time-segment clock because the former term is more general ($+$E4) and
  1181. is intuitively appealing.
  1182.  
  1183. \subsection{Time-line Clock Granularity}
  1184.  
  1185. \entry{Definition}         
  1186. The {\em time-line clock granularity\/} is the uniform size of each
  1187. chronon in the time-line clock.
  1188.  
  1189. \entry{Alternative Names}   
  1190. None.
  1191.  
  1192. \entry{Discussion}
  1193. The modifier ``time-line'' distinguishes this kind of granularity from
  1194. other kinds of granularity ($+$E1) and describes precisely where this
  1195. granularity applies ($+$E9).
  1196.  
  1197. \subsection{Beginning}
  1198.  
  1199. \entry{Definition}         
  1200. The time-line supported by any temporal DBMS is, by necessity, finite
  1201. and therefore has a smallest and largest representable chronon. The
  1202. distinguished value {\em beginning\/} is a special valid-time event
  1203. preceding the smallest chronon on the valid-time line.  Beginning has
  1204. no transaction-time semantics.
  1205.  
  1206. \entry{Alternative Names}   
  1207. Start, begin, commencement, origin, negative infinity.
  1208.  
  1209. \entry{Discussion}
  1210. Beginning has the advantage of being intuitive (+E8), and does not
  1211. have conflicting meanings (+E5).
  1212.  
  1213. ``Begin'' appears to be more straight-forward (+E8) but suffers from
  1214. conflicting meanings since it is a common programming language keyword
  1215. ($-$E5).
  1216.  
  1217. ``Start,'' ``commencement,'' and ``origin'' are awkward to use, e.g.,
  1218. ``Start precedes the event,'' ``Commencement precedes the event,'' and
  1219. ``Origin precedes the event.'' ($-$E8). Furthermore, choosing start
  1220. would require us to choose ``end'' for the opposite concept, and end
  1221. is a common programming language keyword ($-$E5). Origin also has a
  1222. conflicting meaning relative to calendars ($-$E5).
  1223.  
  1224. Lastly, ``negative infinity'' is longer ($-$E2) and slightly
  1225. misleading since it implies that time is infinite ($-$E9). This may
  1226. or may not be true depending on theories about the creation of the
  1227. universe. Also, negative infinity has a well-established mathematical
  1228. meaning ($-$E5).
  1229.  
  1230. \subsection{Forever}
  1231.  
  1232. \entry{Definition}         
  1233. The distinguished value {\em forever\/} is a special valid-time event
  1234. following the largest chronon on the valid-time line. Forever has no
  1235. transaction-time semantics.
  1236.  
  1237. \entry{Alternative Names}   
  1238. Infinity, positive infinity.
  1239.  
  1240. \entry{Discussion}
  1241. Forever has the advantage of being intuitive (+E8) and does not have
  1242. conflicting meanings (+E5).
  1243.  
  1244. ``Infinity'' and ``positive infinity'' both appear to be more
  1245. straightforward but have conflicting mathematical meanings ($-$E5).
  1246. Furthermore, positive infinity is longer and would require us to
  1247. choose ``negative infinity'' for its opposite ($-$E2).
  1248.  
  1249. \subsection{Initiation}
  1250.  
  1251. \entry{Definition}
  1252. The distinguished value {\em initiation\/} denotes the
  1253. transaction-time when the database was created, i.e., the chronon
  1254. during which the first update to the database occurred. Initiation
  1255. has no valid-time semantics.
  1256.  
  1257. \entry{Alternative Names}   
  1258. Start, begin, commencement, origin, negative infinity, beginning.
  1259.  
  1260. \entry{Discussion}
  1261. The arguments against ``start,'' ``begin,'' ``commencement,''
  1262. ``origin,'' and ``negative infinity'' are as in the discussion of
  1263. beginning.
  1264.  
  1265. Initiation is preferred over beginning since transaction-time is
  1266. distinct from valid-time. Using different terms for the two concepts
  1267. avoids conflicting meanings (+E5).
  1268.  
  1269. \subsection{Timestamp Interpretation}
  1270.  
  1271. \entry{Definition}
  1272. In the discrete model of time, the {\em timestamp interpretation\/}
  1273. gives the meaning of each timestamp bit pattern in terms of some
  1274. time-line clock chronon (or group of chronons), that is, the time to
  1275. which each bit pattern corresponds. The timestamp interpretation is a
  1276. many-to-one function from time-line clock chronons to timestamp bit
  1277. patterns.
  1278.  
  1279. \entry{Alternative Names}  
  1280. None.
  1281.  
  1282. \entry{Discussion}  
  1283. Timestamp interpretation is a concise ($+$E2), intuitive ($+$E8),
  1284. precise ($+$E9) term for a widely-used but currently undefined concept
  1285. ($+$E7).
  1286.  
  1287. \subsection{Timestamp Granularity}
  1288.  
  1289. \entry{Definition}         
  1290. In the discrete model of time, the {\em timestamp granularity\/} 
  1291. is the size of each chronon in a timestamp interpretation.
  1292. For instance, if the timestamp granularity is one second, then
  1293. the size of each chronon in the timestamp interpretation is one
  1294. second (and vice-versa).
  1295.  
  1296. \entry{Alternative Names}   
  1297. Time granularity.
  1298.  
  1299. \entry{Discussion}
  1300. Timestamp granularity is not an issue in the continuous model of time.
  1301. The adjective ``timestamp'' is used to distinguish this kind of
  1302. granularity from other kinds of granularity, such as the granularity
  1303. of non-timestamp attributes ($+$E9,$+$E1). ``Time granularity'' is
  1304. much too vague a term since there is a different granularity
  1305. associated with temporal constants, timestamps, physical clocks, and
  1306. the time-line clock although all these concepts are time-related.
  1307. Each time dimension has a separate timestamp granularity. A time,
  1308. stored in a database, must be stored in the timestamp granularity
  1309. regardless of the granularity of that time (e.g., the valid-time date
  1310. January 1st, 1990 stored in a database with a valid-time timestamp
  1311. granularity of a second must be stored as a particular second during
  1312. that day, perhaps midnight January 1st, 1990). If the context is
  1313. clear, the modifier ``timestamp'' may be omitted, for example,
  1314. ``valid-time timestamp granularity'' is equivalent to ``valid-time
  1315. granularity'' ($+$E2).
  1316.  
  1317.  
  1318. \subsection{Time Indeterminacy}
  1319.  
  1320. \entry{Definition}
  1321. Information that is {\em time indeterminate\/} can be characterized as
  1322. ``don't know when'' information, or more precisely, ``don't know {\em
  1323. exactly\/} when'' information. The most common kind of time
  1324. indeterminacy is valid-time indeterminacy or user-defined time
  1325. indeterminacy. Transaction-time indeterminacy is rare because
  1326. transaction times are always known exactly.
  1327.  
  1328. \entry{Alternative Names}  
  1329. Fuzzy time, time imprecision, time incompleteness.
  1330.  
  1331. \entry{Discussion}
  1332.  
  1333. Often a user knows only approximately when an event happened, when an
  1334. interval began and ended, or even the duration of a span. For
  1335. instance, she may know that an event happened ``between 2 PM and 4
  1336. PM,'' ``on Friday,'' ``sometime last week,'' or ``around the middle of
  1337. the month.'' She may know that a airplane left ``on Friday'' and
  1338. arrived ``on Saturday.'' Or perhaps, she has information that
  1339. suggests that a graduate student takes ``four to fifteen'' years to
  1340. write a dissertation. These are examples of time indeterminacy. The
  1341. adjective ``time'' allows parallel kinds of indeterminacy to be
  1342. defined, such as spatial indeterminacy ($+$E1). We prefer ``time
  1343. indeterminacy'' to ``fuzzy time'' since fuzzy has a specific, and
  1344. different, meaning in database contexts ($+$E8). There is a subtle
  1345. difference between indeterminate and imprecise. In this context,
  1346. indeterminate is a more general term than imprecise since precision is
  1347. commonly associated with making measurements. Typically, a precise
  1348. measurement is preferred to an imprecise one. Imprecise time
  1349. measurements, however, are just one source of time indeterminate
  1350. information ($+$E9). On the other hand, ``time incompleteness'' is
  1351. too general. Time indeterminacy is a specific kind of time incomplete
  1352. information.
  1353.  
  1354. \subsection{Period of Indeterminacy}
  1355.  
  1356. \entry{Definition}
  1357. The {\em period of indeterminacy\/} is either an anchored duration
  1358. associated with an indeterminate event or a duration associated with
  1359. an indeterminate span, that delimits the range of possible times
  1360. represented by the event or span.
  1361.  
  1362. \entry{Alternative Names} 
  1363. Interval of indeterminacy, fuzzy interval.
  1364.  
  1365. \entry{Discussion}
  1366. The period of indeterminacy associated with an indeterminate event is
  1367. an anchored duration that delimits the range of possible times during
  1368. which the event occurred. The event happened sometime during the
  1369. period of indeterminacy but it is unknown exactly when. An anchored
  1370. duration is usually referred to as an interval, however, in this
  1371. context, we prefer to call it a period because the syntactic
  1372. difference between an ``indeterminate interval'' and an ``interval of
  1373. indeterminacy'' is slight, while the semantic difference is great.
  1374. Hence, while using ``interval of indeterminacy'' might be more precise
  1375. ($+$E9), it would also be more confusing ($-$E8). Using ``fuzzy
  1376. interval'' would also be confusing due to the influence of fuzzy
  1377. databases ($+$E5).
  1378.  
  1379. \subsection{Temporal Specialization}
  1380.  
  1381. \entry{Definition}
  1382.  
  1383. {\em Temporal specialization} denotes the restriction of the
  1384. interrelationship between otherwise independent (implicit or explicit)
  1385. timestamps in relations. An example is a relation where facts are
  1386. always inserted after they were valid in reality. In such a relation,
  1387. the transaction time would always be after the valid time. Temporal
  1388. specialization may be applied to relation schemas, relation instances,
  1389. and individual tuples.
  1390.  
  1391. \entry{Alternative Names}   
  1392.  
  1393. Temporal restriction.
  1394.  
  1395. \entry{Discussion}
  1396.  
  1397. Data models exist where relations are required to be specialized, and
  1398. temporal specializations often constitute important semantics about
  1399. temporal relations that may be utilized for, e.g., query optimization
  1400. and processing purposes.
  1401.  
  1402. The chosen name is more widely used than the alternative name (+E3).
  1403. The chosen name is new (+E5) and indicates that specialization is done
  1404. with respect to the temporal aspects of facts (+E8). Temporal
  1405. specialization seems to be open-ended (+E4). Thus, an opposite
  1406. concept, temporal generalization, has been defined. ``Temporal
  1407. restriction'' has no obvious opposite name ($-$E4).
  1408.  
  1409. \subsection{Specialized Bitemporal Relationship}
  1410.  
  1411. \entry{Definition}
  1412.  
  1413. A temporal relation schema exhibits a {\em specialized bitemporal
  1414. relationship} if all instances obey some given specialized
  1415. relationship between the (implicit or explicit) valid and transaction
  1416. times of the stored facts. Individual instances and tuples may also
  1417. exhibit specialized bitemporal relationships. As the transaction times
  1418. of tuples depend on when relations are updated, updates may also be
  1419. characterized by specialized bitemporal relationships.
  1420.  
  1421. \entry{Alternative Names}
  1422.  
  1423. Restricted bitemporal relationship.
  1424.  
  1425. \entry{Discussion}
  1426.  
  1427. The primary reason for the choice of name is consistency with the
  1428. naming of temporal specialization (+E1). For additional discussions,
  1429. see temporal specialization.
  1430.  
  1431. \subsection{Retroactive Temporal Relation}
  1432.  
  1433. \entry{Definition}
  1434.  
  1435. A temporal relation schema including at least valid time is {\em
  1436. retroactive} if each stored fact of any instance is always valid in
  1437. the past. The concept may be applied to temporal relation instances,
  1438. individual tuples, and to updates.
  1439.  
  1440. \entry{Alternative Names}
  1441.  
  1442. None.
  1443.  
  1444. \entry{Discussion}
  1445.  
  1446. The name is motivated by the observation that a retroactive bitemporal
  1447. relation contains only information concerning the past (+E8).
  1448.  
  1449. \subsection{Predictive Temporal Relation}
  1450.  
  1451. \entry{Definition}
  1452.  
  1453. A temporal relation schema including at least valid time is {\em
  1454. predictive} if each fact of any relation instance is valid in the
  1455. future when it is being stored in the relation. The concept may be
  1456. applied to temporal relation instances, individual tuples, and to
  1457. updates.
  1458.  
  1459. \entry{Alternative Names}   
  1460.  
  1461. Proactive bitemporal relation.
  1462.  
  1463. \entry{Discussion}
  1464.  
  1465. Note that the concept is applicable only to relations which support
  1466. valid time, as facts valid in the future cannot be stored otherwise.
  1467.  
  1468. The choice of ``predictive'' over ``proactive'' is due to the more
  1469. frequent every-day use of ``predictive,'' making it a more intuitive
  1470. name (+E8). In fact, ``proactive'' is absent from many dictionaries.
  1471. Tuples inserted into a predictive bitemporal relation instance are, in
  1472. effect, predictions about the future of the modeled reality.  Still,
  1473. ``proactive'' is orthogonal to ``retroactive'' ($-$E1).
  1474.  
  1475. \subsection{Degenerate Bitemporal Relation}
  1476.  
  1477. \entry{Definition}
  1478.  
  1479. A bitemporal relation schema is {\em degenerate} if updates to it's
  1480. relation instances are made immediately when something changes in
  1481. reality, with the result that the values of the valid and transaction
  1482. times are identical. The concept may be applied to bitemporal relation
  1483. instances, individual tuples, and to updates.
  1484.  
  1485. \entry{Alternative Names}
  1486.  
  1487. None.
  1488.  
  1489. \entry{Discussion}
  1490.  
  1491. ``Degenerate bitemporal relation'' names a previously unnamed concept
  1492. that is frequently used. A degenerate bitemporal relation resembles a
  1493. transaction-time relation in that only one timestamp is necessary.
  1494. Unlike a transaction-time relation, however, it is possible to pose
  1495. both valid-time and transaction-time queries on a degenerate
  1496. bitemporal relation.
  1497.  
  1498. The use of ``degenerate'' is intended to reflect that the two time
  1499. dimensions may be represented as one, with the resulting limited
  1500. capabilities.
  1501.  
  1502. \subsection{Tick}
  1503.  
  1504. \entry{Definition}     
  1505. Same as definition of ``chronon''.
  1506.  
  1507. \entry{Alternative Names}   
  1508. Chronon, instant, atomic time unit, time unit.
  1509.  
  1510. \entry{Discussion}
  1511. Tick is concise, intuitive, and unpretentious.
  1512.  
  1513. \noindent
  1514. {\bf NOTE:} ``Tick'' conflicts with ``chronon.''
  1515.  
  1516. \appendix
  1517.  
  1518. \section{Relevance Criteria for Concepts}
  1519. \label{sec:rel}
  1520.  
  1521. It must be attempted to name only concepts that fulfill the following four
  1522. requirements.
  1523. \begin{description}
  1524.     \item [R1] The concept must be specific to temporal databases.
  1525.           Thus, concepts used more generally are excluded.
  1526.     \item [R2] The concept must be well-defined. Before attempting to name
  1527.           a concept, it is necessary to agree on the definition of the
  1528.           concept itself.
  1529.     \item [R3] The concept must be well understood. We have attempted
  1530.           to not name a concept if a clear understanding of the
  1531.           appropriateness, consequences, and implications of the
  1532.           concept is missing. Thus, we avoid concepts from research
  1533.           areas that are currently being explored.
  1534.     \item [R4] The concept must be widely used. We have avoided concepts
  1535.           used only sporadically within the field.
  1536. \end{description}
  1537.  
  1538. \section{Evaluation Criteria for Naming Concepts}
  1539. \label{sec:eva}
  1540.  
  1541. Below is a list of criteria for what is a good name. These criteria
  1542. should be referenced when proposing a glossary entry. The criteria are
  1543. sometimes conflicting, making the choice of names a difficult and
  1544. challenging task. While this list is comprehensive, it is not complete.
  1545.  
  1546.   \begin{description}
  1547.     \item [E1] The naming of concepts should be orthogonal. Parallel
  1548.           concepts should have parallel names.
  1549.     \item [E2] Names should be easy to write, i.e., they should be
  1550.           short or possess a short acronym, should be easily
  1551.           pronounced (the name or its acronym), and should be
  1552.           appropriate for use in subscripts and superscripts.
  1553.     \item [E3] Already widely accepted names are preferred over new
  1554.           names.
  1555.     \item [E4] Names should be open-ended in the sense that the name
  1556.           of a concept should not prohibit the invention of a parallel
  1557.           name if a parallel concept is defined.
  1558.     \item [E5] The creation of homographs and homonyms should be
  1559.           avoided. Names with an already accepted meaning, e.g., an
  1560.           informal meaning, should not be given an additional meaning.
  1561.     \item [E6] The naming of concepts should be conservative. No name
  1562.           is better than a bad name.
  1563.     \item [E7] New names should be consistent with related and already
  1564.           existing and accepted names.
  1565.     \item [E8] Names should be intuitive.
  1566.     \item [E9] Names should be precise.
  1567.   \end{description}
  1568.  
  1569. \section{Overview of Existing Terms}
  1570. \label{sec:ove}
  1571.  
  1572. The following list of temporal database terms appeared as complete
  1573. glossary entries in ``Jensen, C.~S., J.~Clifford, S.~K.~Gadia,
  1574. A.~Segev, and R.~T.~Snodgrass: {\em A Glossary of Temporal Database
  1575. Concepts,} {\it ACM SIGMOD Record\/}, Vol.~21, No.~3, September 1992,
  1576. pp.~35--43.
  1577.  
  1578. \dicstart
  1579. \name{bitemporal relation}
  1580. A {\em bitemporal relation\/} is a relation with exactly one system
  1581. supported valid time and exactly one system-supported transaction
  1582. time.
  1583.  
  1584. \name{chronon}
  1585. A {\em chronon} is the shortest duration of time supported by a
  1586. temporal DBMS---it is a nondecomposable unit of time. A particular
  1587. chronon is a subinterval of fixed duration on time-line.
  1588.  
  1589. \name{event}
  1590. An {\em event} is an isolated instant in time. An event is said to
  1591. occur at time $t$ if it occurs at any time during the chronon
  1592. represented by $t$.
  1593.  
  1594. \name{interval}
  1595. An {\em interval} is the time between two events. It may be
  1596. represented by a set of contiguous chronons.
  1597.  
  1598. \name{lifespan}
  1599. The {\em lifespan} of a database object is the time over which it is
  1600. defined. The valid-time lifespan of a database object refers to the
  1601. time when the corresponding object exists in the modeled reality,
  1602. whereas the transaction-time lifespan refers to the time when the
  1603. database object is current in the database.
  1604.  
  1605. If the object (attribute, tuple, relation) has an associated timestamp
  1606. then the lifespan of that object is the value of the timestamp. If
  1607. components of an object are timestamped, then the lifespan of the
  1608. object is determined by the particular data model being employed.
  1609.  
  1610. \name{snapshot relation}
  1611. Relations of a conventional relational database system incorporating
  1612. neither valid-time nor trans\-action-time timestamps are {\em snapshot
  1613. relations\/}.
  1614.  
  1615. \name{snapshot, valid- and transaction-time, and bitemporal as
  1616. modifiers}
  1617. The definitions of how ``snapshot,'' ``valid-time,''
  1618. ``transaction-time,'' and ``bitemporal'' apply to relations provide
  1619. the basis for applying these modifiers to a range of other concepts.
  1620. Let $x$ be one of snapshot, valid-time, transaction-time, and
  1621. bitemporal. Twenty derived concepts are defined as follows (+E1).
  1622.  
  1623.   \begin{description}
  1624.     \item [relational database] An $x$ relational database contains
  1625.           one or more $x$ relations.
  1626.     \item [relational algebra] An $x$ relational algebra has relations
  1627.           of type $x$ as basic objects.
  1628.     \item [relational query language] An $x$ relational query language
  1629.           manipulates any possible $x$ relation. Had we used
  1630.           ``some'' instead of ``any'' in this definition, the
  1631.           defined concept would be very imprecise ($-$E9).
  1632.     \item [data model] An $x$ data model has an $x$ query language and
  1633.           supports the specification of constraints on any $x$
  1634.           relation.
  1635.     \item [DBMS] An $x$ DBMS supports an $x$ data model.
  1636.   \end{description}
  1637.  
  1638. The two model-independent terms, data model and DBMS, may be
  1639. replaced by more specific terms. For example, ``data model'' may be
  1640. replaced by ``relational data model'' in ``bitemporal data model.''
  1641.  
  1642. The nouns that have been modified above are not specific to temporal
  1643. databases. The nouns chronon and event are specific to temporal
  1644. databases and may be modified by ``valid-time,'' ``transaction-time,''
  1645. and ``bitemporal.''
  1646.  
  1647. \name{span}
  1648. A {\em span} is a directed duration of time. A duration is an amount
  1649. of time with known length, but no specific starting or ending
  1650. chronons.  For example, the duration ``one week'' is known to have a
  1651. length of seven days, but can refer to any block of seven consecutive
  1652. days. A span is either positive, denoting forward motion of time, or
  1653. negative, denoting backwards motion in time.
  1654.  
  1655. \name{temporal as modifier}
  1656. The modifier {\em temporal\/} is used to indicate that the modified
  1657. concept concerns some aspect of time.
  1658.  
  1659. \name{temporal database}
  1660. A {\em temporal} database supports some aspect of time, not counting
  1661. user-defined time.
  1662.  
  1663. \name{temporal element}
  1664. A {\em temporal element} is a finite union of $n$-dimensional time
  1665. boxes. Temporal elements are closed under the set theoretic operations
  1666. of union, intersection and complementation.
  1667.  
  1668. Temporal elements may be used as timestamps. Special cases of
  1669. temporal elements occur as timestamps in valid-time relations,
  1670. transaction-time relations, and bitemporal relations. These special
  1671. cases are termed {\em valid-time elements}, {\em transaction time
  1672. elements}, and {\em bitemporal elements}. They are defined as finite
  1673. unions of valid-time intervals, transaction-time intervals, and
  1674. bitemporal rectangles, respectively.
  1675.  
  1676. \name{temporal expression}
  1677. A {\em temporal expression\/} is a syntactic construct used in a query
  1678. that evaluates to a temporal value, i.e., an event, an interval, a
  1679. span, or a temporal element. In snapshot databases, expressions
  1680. evaluate to relations and therefore they may be called relational
  1681. expressions to differentiate them from temporal expressions.
  1682.  
  1683. \name{temporally homogeneous}
  1684. A temporal tuple is {\em temporally homogeneous\/} if the lifespan
  1685. of all attribute values within it are identical. A temporal relation is
  1686. said to be temporally homogeneous if its tuples are temporally
  1687. homogeneous. A temporal database is said to be temporally homogeneous
  1688. if all its relations are temporally homogeneous. In addition to being
  1689. specific to a type of object (tuple, relation, database), homogeneity
  1690. is also specific to some time dimension, as in ``temporally
  1691. homogeneous in the valid-time dimension'' or ``temporally homogeneous
  1692. in the transaction-time dimension.''
  1693.  
  1694. \name{time-invariant attribute}
  1695. A {\em time-invariant attribute} is an attribute whose value is
  1696. constrained to not change over time. In functional terms, it is a
  1697. constant-valued function over time.
  1698.  
  1699. \name{timestamp}
  1700. A {\em timestamp\/} is a time value associated with some time-stamped
  1701. object, e.g., an attribute value or a tuple. The concept may be
  1702. specialized to valid timestamp, transaction timestamp, interval
  1703. timestamp, event timestamp, bitemporal element timestamp, etc.
  1704.  
  1705. \name{transaction time}
  1706. A database fact is stored in a database at some point in time, and
  1707. after it is stored, it may be retrieved. The {\em transaction time\/}
  1708. of a database fact is the time when the fact is stored in the
  1709. database. Transaction times are consistent with the serialization
  1710. order of the transactions. Transaction time values cannot be after the
  1711. current time. Also, as it is impossible to change the past,
  1712. transaction times cannot be changed. Transaction times may be
  1713. implemented using transaction commit times.
  1714.  
  1715. \name{transaction-time relation}
  1716. A {\em transaction-time relation\/} is a relation with exactly one
  1717. system supported transaction time. As for valid-time relations, there
  1718. are no restrictions as to how transaction times may be associated with
  1719. the tuples.
  1720.  
  1721. \name{transaction timeslice operator}
  1722. The {\em transaction timeslice operator\/} may be applied to any
  1723. relation with a transaction time. It also takes as argument a time
  1724. value not exceeding the current time, {\em NOW\/}. It returns the
  1725. state of the argument relation that was current at the time specified
  1726. by the time argument.
  1727.  
  1728. \name{user-defined time}
  1729. {\em User-defined time\/} is an uninterpreted attribute domain of date
  1730. and time. User-defined time is parallel to domains such as ``money''
  1731. and integer---unlike transaction time and valid time, it has no
  1732. special query language support. It may be used for attributes such as
  1733. ``birth day'' and ``hiring date.''
  1734.  
  1735. \name{valid time}
  1736. The {\em valid time\/} of a fact is the time when the fact is true in
  1737. the modeled reality. A fact may have associated any number of events
  1738. and intervals, with single events and intervals being important
  1739. special cases.
  1740.  
  1741. \name{valid-time relation}
  1742. A {\em valid-time relation\/} is a relation with exactly one system
  1743. supported valid time. In agreement with the definition of valid time,
  1744. there are no restrictions on how valid times may be associated with
  1745. the tuples (e.g., attribute value time stamping may be employed).
  1746.  
  1747. \name{valid timeslice operator}
  1748. The {\em valid timeslice operator\/} may be applied to any relation
  1749. with a valid time. It takes as argument a time value. It returns
  1750. the state of the argument relation that was valid at the time of the
  1751. time argument.
  1752.  
  1753. \dicend
  1754.  
  1755. \end{document}
  1756.